import { defineAsyncComponent, hydrateOnVisible } from 'vue'

const SYSTEM_ROUTE = {
  SystemAbout: defineAsyncComponent({
    hydrate: hydrateOnVisible(),
    loader: () => import('@/views/system/about.vue'),
  }),
  SystemFolder: defineAsyncComponent({
    hydrate: hydrateOnVisible(),
    loader: () => import('@/views/system/folder.vue'),
  }),
  SystemNetwork: defineAsyncComponent({
    hydrate: hydrateOnVisible(),
    loader: () => import('@/views/system/network.vue'),
  }),
  SystemNetworkConfig: defineAsyncComponent({
    hydrate: hydrateOnVisible(),
    loader: () => import('@/views/system/components/network/Config.vue'),
  }),
  SystemNotepad: defineAsyncComponent({
    hydrate: hydrateOnVisible(),
    loader: () => import('@/views/system/notepad.vue'),
  }),
  SystemApp: defineAsyncComponent({
    hydrate: hydrateOnVisible(),
    loader: () => import('@/views/system/app.vue'),
  }),
  SystemAppManager: defineAsyncComponent({
    hydrate: hydrateOnVisible(),
    loader: () => import('@/views/system/app-manager.vue'),
  }),
  SystemSetting: defineAsyncComponent({
    hydrate: hydrateOnVisible(),
    loader: () => import('@/views/system/setting.vue'),
  }),
  SystemTask: defineAsyncComponent({
    hydrate: hydrateOnVisible(),
    loader: () => import('@/views/system/task.vue'),
  }),
  SystemTerminal: defineAsyncComponent({
    hydrate: hydrateOnVisible(),
    loader: () => import('@/views/system/terminal.vue'),
  }),
  VideoPlayer: defineAsyncComponent({
    hydrate: hydrateOnVisible(),
    loader: () => import('@/views/system/video-player.vue'),
  }),
}

export default SYSTEM_ROUTE
